package smallChanges.util;

public interface SCConstants
{
	public static final String SOURCE_VERSION_1_3="1.3";
	public static final String SOURCE_VERSION_1_4="1.4";
	public static final String SOURCE_VERSION_1_5="1.5";
	public static final String UNCOMPILABLE="uncompilable";
	public static final String CVS2SVN="cvs2svn";
	public static final String PRECEEDING_PATH_REGEXP="^(.*/trunk/)|(.*/branches/[^/]*/)";
	
	public static final String PACKAGE_PRIVATE="";
	public static final String PRIVATE="private";
	public static final String PUBLIC="public";
	public static final String PROTECTED="protected";
	
	public static final String PRIMITIVE="primitive";
	public static final String REFERENCE="reference";
	
	// statement types
	// XXX maybe replace with typesafe enum?
	public static final String METHOD_SIGNATURE="METHOD_SIGNATURE";
	public static final String METHOD_BODY="METHOD_BODY";

	public static final String BREAK="BREAK";
	public static final String CONTINUE="CONTINUE";
	public static final String SINGLE_STATEMENT="SINGLE_STATEMENT";
	public static final String CASE_STATEMENT="CASE_STATEMENT";
	public static final String IMPORT_STATEMENT="IMPORT_STATEMENT";
	
	public static final String STATEMENT_LIST="STATEMENT_LIST";
	public static final String COMPOUND_STATEMENT="COMPOUND_STATEMENT";
	public static final String CATCH_STATEMENT="CATCH_STATEMENT";
	public static final String SYNCHRONIZED_STATEMENT="SYNCHRONIZED_STATEMENT";
	public static final String SYNCHRONIZED_HEADER="SYNCHRONIZED_HEADER";
	public static final String SYNCHRONIZED_BODY="SYNCHRONIZED_BODY";
	public static final String CATCH_BODY="CATCH_BODY";
	
	public static final String IF_STATEMENT_HEADER= "IF_STATEMENT_HEADER";
	public static final String IF_BODY = "IF_BODY";
	public static final String ELSE_BODY = "ELSE_BODY";
	
    public static final String FOR_STATEMENT = "FOR_STATEMENT";	
    public static final String FOR_LOOP_HEADER="FOR_LOOP_HEADER";
    public static final String FOR_BODY = "FOR_BODY";
    public static final String FOR_INIT = "FOR_INIT";
    public static final String FOR_UPDATE = "FOR_UPDATE";
    public static final String FOR_CONDITION = "FOR_CONDITION";
	
	public static final String WHILE_STATEMENT= "WHILE_STATEMENT";
	public static final String WHILE_LOOP_HEADER = "WHILE_LOOP_HEADER";
	public static final String WHILE_BODY = "WHILE_BODY";
	
	public static final String STATIC_INITIALIZER = "STATIC_INITIALIZER";
    public static final String CATCH_STATEMENT_HEADER = "CATCH_STATEMENT_HEADER";
    public static final String TRY_STATEMENT = "TRY_STATEMENT";
    public static final String SWITCH_STATEMENT = "SWITCH_STATEMENT";
    public static final String SWITCH_HEADER = "SWITCH_HEADER";
    public static final String SWITCH_BODY = "SWITCH_BODY";
    public static final String DO_WHILE_BODY = "DO_WHILE_BODY";
    public static final String ENUM_CONSTANT = "ENUM_CONSTANT";
    
    public static final String DO_KEYWORD = "DO_KEYWORD";
    public static final String TRY_KEYWORD = "TRY_KEYWORD";
    public static final String FINALLY_KEYWORD = "FINALLY_KEYWORD";
    public static final String ELSE_KEYWORD = "ELSE_KEYWORD";
    
    public static final String ACTUAL_PARAMETER = "ACTUAL_PARAMETER";
    public static final String CONSTRUCTOR_INVOCATION = "CONSTRUCTOR_INVOCATION";
    public static final String ARRAY_CONSTRUCTOR_INVOCATION = "ARRAY_CONSTRUCTOR_INVOCATION";
    public static final String EXPLICIT_CONSTRUCTOR_INVOCATION = "EXPLICIT_CONSTRUCTOR_INVOCATION";
    public static final String METHOD_INVOCATION = "METHOD_INVOCATION";
    
    public static final String COORDS_QUERY = " and beginLine = :beginLine " +
            " and beginColumn = :beginColumn " +
            " and endLine = :endLine " +
            " and endColumn = :endColumn ";
    /**
     * Maximum length of a token.  Any larger tokens will be truncated to 
     * this length.  If you change this value, you must also change
     * smallChanges.statements.UniqueToken.hbm.xml to reflect the new
     * size, as well as change the STMT_UniqueTokens table in any databases
     * that are using this code.
     */
    public static final int MAX_TOKEN_IMAGE_LENGTH = 2048;
}
